home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
MiscKit1.7.1
/
MiscKit
/
Palettes
/
MiscSwapKitPalette
/
MiscSwapKitPalette.m
< prev
next >
Wrap
Text File
|
1995-04-12
|
2KB
|
84 lines
// Copyright (C) 1995
// Use is governed by the MiscKit license
#import "MiscSwapKitPalette.h"
@implementation MiscSwapKitPalette
- finishInstantiate
{
id idBundle;
char buf[MAXPATHLEN + 1];
// Put the image on the button that will represent the controller
// on the palette, then associate it with the object that is the
// real controller.
[super finishInstantiate];
idBundle = [NXBundle bundleForClass:[self class]];
if ([idBundle getPath:buf forResource:"MiscSCC" ofType:"tiff"])
[swapImageView setImage:[ [NXImage alloc] initFromFile:buf] ];
[self associateObject:realSwapObject
type:IBObjectPboardType with:swapImageView];
return self;
}
@end
@implementation MiscSwapView (IBDisplaying)
// Displays a bezel around the view and writes their class name
// in the center to identify subclasses, since otherwise you cannot
// even see where the view is (on the palette and after being dragged).
- drawSelf:(const NXRect *)rects :(int)rectCount
{
if ([NXApp conformsTo: @protocol(IB)])
if ([NXApp isTestingInterface] == NO)
{
id font = [Font boldSystemFontOfSize: 12.0
matrix: NX_IDENTITYMATRIX];
float x;
float gray = [self backgroundGray];
float grays[4] = {NX_BLACK, NX_DKGRAY, NX_LTGRAY, NX_WHITE};
int i = 0;
char *className = (char *)[ [self class] name];
NXRect indent;
while (i<4 && gray != grays[i])
i++;
// fill background with same color as will be used at runtime
PSsetgray (gray);
NXRectFill (&bounds);
// choose an offset gray for border and text
PSsetgray (grays[(i+2)%3]);
NX_X (&indent) = NX_X (&bounds) + 2.0;
NX_Y (&indent) = NX_Y (&bounds) + 2.0;
NX_WIDTH (&indent) = NX_WIDTH (&bounds) - 4.0;
NX_HEIGHT (&indent) = NX_HEIGHT (&bounds) - 4.0;
NXFrameRect (&indent);
[font set];
if ([font getWidthOf: className] > indent.size.width)
x = 10.0;
else
x = (indent.size.width - [font getWidthOf: className])/2;
PSmoveto (x, (indent.size.height-[font pointSize])/2);
PSshow (className);
}
else
[self swapContentView: [self trigger] ];
return self;
}
@end